<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<script type="text/javascript">
			// 写出具体步骤
			// GO: Foo: func ->
			//     getName: undefined -> function5 -> function4
			function Foo(){
				getName = function(){
					console.log(1);
				}
				return this;
			}	
			
			Foo.getName = function(){
				console.log(2);
			} // 再Foo里面添加一个getName方法
			Foo.prototype.getName = function(){
				console.log(3);
			}// 再Foo原型上添加一个getName方法
			
			var getName = function(){
				console.log(4);
			}
			
			function getName(){
				console.log(5);
			}
			
			Foo.getName(); // 2
			getName(); // 4
			Foo().getName();  //1  执行Foo() -> getName跑到Go 
			getName(); // 1
			new Foo.getName(); //2  .的优先级比new要高 Foo.getName() -> 2 -> new 2没有意义 -> 2
			new Foo().getName();//3 ()的优先级比.要高 -> new Foo()总是一起执行 -> Foo里面没有this.getName -> 去prototype上去找
			new new Foo().getName(); // 3 new 3 -> 3
		</script>
	</body>
</html>
